/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controler;

import Model.*;
//import ModelOld.*;

/**
 *
 * @author goum
 */
public class Controler {

    private Plateau plateau;
    private Joueur joueurBlanc;
    private Joueur joueurNoir;
    private Case CaseDep;
    private Case CaseFin;

    public Case getCaseDep() {
        return CaseDep;
    }

    public Case getCaseFin() {
        return CaseFin;
    }

    public Joueur getJoueurBlanc() {
        return joueurBlanc;
    }

    public Joueur getJoueurNoir() {
        return joueurNoir;
    }

    public Plateau getPlateau() {
        return plateau;
    }

    public Controler() {
        this.joueurBlanc = new Joueur("blanc");
        this.joueurNoir = new Joueur("noir");
        this.plateau = new Plateau(joueurBlanc, joueurNoir);
        this.CaseDep = null;
        this.CaseFin = null;
    }

    /**
     * Cette méthodes permet de démarrer une nouvelle partie
     */
    public void NouvellePartie() {
        this.joueurBlanc = new Joueur("blanc");
        this.joueurNoir = new Joueur("noir");
        this.plateau = new Plateau(joueurBlanc, joueurNoir);
    }

    /**
     * Cette méthodes initialise les cases
     */
    public Case InitCase(int x, int y) {
        return this.plateau.getCases()[x][y];
    }

    /**
     * Cette fonction permet d'envoyer les requêtes de déplacement model
     */
    public void Deplacer(int x, int y) {
        if (this.CaseDep != null) {
            this.CaseFin = new Case(this.InitCase(x, y));
            plateau.deplacer(this.CaseDep, this.CaseFin);
            this.CaseDep = null;
        } else {
            this.CaseDep = new Case(this.InitCase(x, y));
            System.out.println("Fonction deplacer du controleur x : " + CaseDep.getCoordX() + " y : " + CaseDep.getCoordY());
        }
    }
}
